package com.ruoyi.DataManage.mapper;

import java.util.List;
import com.ruoyi.DataManage.domain.Category;
import com.ruoyi.DataManage.domain.Subject_tree;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;

/**
 * 门类管理Mapper接口
 * 
 * @author ruoyi
 * @date 2024-04-11
 */
@Mapper
public interface CategoryMapper 
{
    /**
     * 查询门类管理
     * 
     * @param id 门类管理主键
     * @return 门类管理
     */
    public Category selectCategoryById(Long id);

    /**
     * 查询门类管理列表
     * 
     * @param category 门类管理
     * @return 门类管理集合
     */
    public List<Category> selectCategoryList(Category category);

    /**
     * 新增门类管理
     * 
     * @param category 门类管理
     * @return 结果
     */
    public int insertCategory(Category category);

    /**
     * 修改门类管理
     * 
     * @param category 门类管理
     * @return 结果
     */
    public int updateCategory(Category category);

    /**
     * 删除门类管理
     * 
     * @param id 门类管理主键
     * @return 结果
     */
    public int deleteCategoryById(Long id);

    /**
     * 批量删除门类管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCategoryByIds(Long[] ids);

    /**
     * 批量删除${subTable.functionName}
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSubject_treeByCategoryIds(Long[] ids);
    
    /**
     * 批量新增${subTable.functionName}
     * 
     * @param subjectList ${subTable.functionName}列表
     * @return 结果
     */
    public int batchSubject_tree(List<Subject_tree> subjectList);
    

    /**
     * 通过门类管理主键删除${subTable.functionName}信息
     * 
     * @param id 门类管理ID
     * @return 结果
     */
    public int deleteSubject_treeByCategoryId(Long id);

    @Delete("delete from category where university_id = #{id}")
    void deleteAll(Long id);

    List<Category> getCategoryListByUniversityId(Long universityId);

    List<Category> getCategoryList();

    List<Long> selectCategoryIdsByName(String categoryName);
}
